package com.ibeeking.found.msg.rest.service;

import com.ibeeking.found.msg.service.common.bo.WxMpFansTagsBO;
import com.ibeeking.found.msg.service.common.dos.WxMpFansDO;
import com.ibeeking.found.msg.service.common.dos.WxMpFansTagsDO;
import com.ibeeking.found.msg.service.common.param.WxMpTagsFansBatchParam;
import com.ibeeking.found.msg.service.common.param.WxMpTagsFansCancelParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @Author ibeeking
 */
public interface IWxMpFansTagsService extends IService<WxMpFansTagsDO> {

    /**
     * 删除标签
     *
     * @param param
     * @return
     */
    Boolean removeFansTagsByTagsId(WxMpTagsFansCancelParam param);

    /**
     * 给粉丝打标签
     *
     * @param param
     * @return
     */
    Boolean taggingFans(WxMpTagsFansBatchParam param);

    /**
     * 通过标签id查询
     *
     * @param appId
     * @param tagsId
     * @return
     */
    List<Long> queryFansIdsByTagsId(String appId, Long tagsId);

    /**
     * 通过粉丝列表查询
     *
     * @param appId
     * @param fansIds
     * @return
     */
    List<WxMpFansTagsBO> queryTagsIdsByFansIds(String appId, List<Long> fansIds);

    /**
     * 查询关联的粉丝id列表
     *
     * @param fansId
     * @return
     */
    List<String> queryByFansId(Long fansId);

    /**
     * 修改粉丝标签
     *
     * @param appId
     * @param id
     * @param tagsList
     * @return
     */
    Boolean modifyTags(String appId, Long id, List<Long> tagsList);

    /**
     * 使用多标签查询粉丝信息
     * @param tagIds
     * @param appId
     * @return
     */
    List<WxMpFansDO> queryFansByTagsIds(List<Long> tagIds , String appId);

}
